﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace Prueba
{
    public partial class Graficos : Form
    {
        public Graficos()
        {
            InitializeComponent();
        }

        private void Graficos_Load(object sender, EventArgs e)
        {
            cargarData();

        }
        private void cargarData() 
        {
         //cargar Tabla Lotes
         DataSet lotesEstados = Estadisticas.obtenerEstadoLotes();
         dgvChartLotes.DataSource = lotesEstados.Tables[0];
         //cargar Tabla Humedades
         DataSet lotesHumedades = Estadisticas.obtenerHumedadesLotes();
         dgvChartHumedades.DataSource = lotesHumedades.Tables[0];
         //cargar Grafico de Lotes
         this.chartLotes.Titles.Add("Lotes");
         Series seriesCosechados = this.chartLotes.Series.Add("Cosechados");
         seriesCosechados.Points.Add(Estadisticas.obtenerCantidadLotesCosechados());
         this.chartLotes.Legends.Add("Cosechados");
         seriesCosechados.Label = Estadisticas.obtenerCantidadLotesCosechados().ToString();
         seriesCosechados.Color = Color.Blue;
         Series seriesSembrados = this.chartLotes.Series.Add("Sembrados");
         seriesSembrados.Points.Add(Estadisticas.obtenerCantidadLotesSembrados());
         this.chartLotes.Legends.Add("Sembrados");
         seriesSembrados.Label = Estadisticas.obtenerCantidadLotesSembrados().ToString();
         seriesSembrados.Color = Color.Green;
       //cargar Grafico de Humedades
        DataSet dsSegura = Estadisticas.obtenerLotesHumedadSegura();
        DataSet dsIntermedia = Estadisticas.obtenerLoteHumedadIntermedia();
        DataSet dsPeligro = Estadisticas.obtenerLoteHumedadPeligro();
        double[] humedadesSegura = new double[dsSegura.Tables[0].Rows.Count];
        double[] humedadesIntermedia = new double[dsIntermedia.Tables[0].Rows.Count];
        double[] humedadesPeligro = new double[dsPeligro.Tables[0].Rows.Count];
        for (int i = 0; i < dsSegura.Tables[0].Rows.Count; i++)
        {
            DataRow campo = dsSegura.Tables[0].Rows[i];
            humedadesSegura[i] = Convert.ToDouble(campo["Humedad"].ToString());
        }
        for (int i = 0; i < dsIntermedia.Tables[0].Rows.Count; i++)
        {
            DataRow campo = dsIntermedia.Tables[0].Rows[i];
            humedadesIntermedia[i] = Convert.ToDouble(campo["Humedad"].ToString());
        }
        for (int i = 0; i < dsPeligro.Tables[0].Rows.Count; i++)
        {
            DataRow campo = dsPeligro.Tables[0].Rows[i];
            humedadesPeligro[i] = Convert.ToDouble(campo["Humedad"].ToString());
        }

        this.chartHumedades.Titles.Add("Humedades");
        Series serieSegura = this.chartHumedades.Series.Add("Mayor a 32%");
        this.chartHumedades.Legends.Add("Mayor a 32%");
        serieSegura.ChartType = SeriesChartType.Point;
        serieSegura.Color = Color.Green;
        Series serieIntermedia = this.chartHumedades.Series.Add("Entre 32% y 25%");
        this.chartHumedades.Legends.Add("Entre 32% y 25%");
        serieIntermedia.ChartType = SeriesChartType.Point;
        serieIntermedia.Color = Color.Yellow;
        Series seriePeligrosa = this.chartHumedades.Series.Add("Menor action 25%");
        this.chartHumedades.Legends.Add("Menor action 25%");
        seriePeligrosa.ChartType = SeriesChartType.Point;
        seriePeligrosa.Color = Color.Red;
        //cargar Serie Humedades Seguras
        for (int i = 0; i < humedadesSegura.Length; i++)
        {
            serieSegura.Points.Add(humedadesSegura[i]);
        }
        //cargar Serie Humedades Intermedias
        for (int i = 0; i < humedadesIntermedia.Length; i++)
        {
            serieIntermedia.Points.Add(humedadesIntermedia[i]);
        }
        //cargar Serie Humedades Peligrosas
        for (int i = 0; i < humedadesPeligro.Length; i++)
        {
            seriePeligrosa.Points.Add(humedadesPeligro[i]);
        }

        }

        private void tsbtnExcel_Click(object sender, EventArgs e)
        {
            Reporte.generarReporteExcel();
        }

        private void tsbtnMail_Click(object sender, EventArgs e)
        {
            Form existe = Application.OpenForms.OfType<Form>().Where(pre => pre.Name == "Mail").SingleOrDefault<Form>();

            if (existe != null)
            {

                existe.WindowState = FormWindowState.Normal;

            }
            else
            {
                Mail correo = new Mail();
                correo.Show();
            }
           
        }

        private void tsbtnAyuda_Click(object sender, EventArgs e)
        {
            Form existe = Application.OpenForms.OfType<Form>().Where(pre => pre.Name == "Ayuda").SingleOrDefault<Form>();

            if (existe != null && existe.Text.Equals("Ayuda Gráficos y Estadísticas"))
            {

                existe.WindowState = FormWindowState.Normal;

            }
            else
            {
                Ayuda ayudaGraficos = new Ayuda();
                ayudaGraficos.Text = "Ayuda Gráficos y Estadísticas";
                ayudaGraficos.Show();
            }
        }

        
    }
   
}
